<?php

Yii::import('application.modules.vinculacion.models._base.BaseRepTrabajoCampo');

class RepTrabajoCampo extends BaseRepTrabajoCampo {

    /**
     * @return RepTrabajoCampo
     */
    const I = 'I';
    const II = 'II';
    const III = 'III';
    const IV = 'IV';
    const V = 'V';
    const VI = 'VI';
    const VII = 'VII';
    const VIII = 'VIII';
    const ESTADO_ACTIVO = 'ACTIVO';
    const ESTADO_INACTIVO = 'INACTIVO';

    //todo :corregir utilizar campo cedula
    public $cedula;

    public function getNivelesOptions() {
        return array(
            self::I => Yii::t('app', 'I'),
            self::II => Yii::t('app', 'II'),
            self::III => Yii::t('app', 'III'),
            self::IV => Yii::t('app', 'IV'),
            self::V => Yii::t('app', 'V'),
            self::VI => Yii::t('app', 'VI'),
            self::VII => Yii::t('app', 'VII'),
            self::VIII => Yii::t('app', 'VIII'),
        );
    }

    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public static function label($n = 1) {
        return Yii::t('app', 'Reporte Trabajo de Campo|Reportes de Trabajo de Campo', $n);
    }

    public function rules() {
        return array(
            array('id_area, n_horas, nivel, cedula', 'required'),
            array('id_area,id_ficha, n_horas, cedula, nota', 'numerical', 'integerOnly' => true),
            array('nivel', 'length', 'max' => 4),
            array('nota', 'default', 'setOnEmpty' => true, 'value' => null),
            array('id, id_area, n_horas, nivel, id_ficha,cedula, nota', 'safe', 'on' => 'search'),
        );
    }

    public function attributeLabels() {
        return array_merge(parent::attributeLabels(), array(
            'id_area' => Yii::t('app', 'Area'),
            'n_horas' => Yii::t('app', 'N. Horas'),
//            'id_ficha' => Yii::t('app', 'Estudiantes'),
            'cedula' => Yii::t('app', 'Estudiante'),
        ));
    }

    public function mostrarFichaId_carrera($cedula) {
//        $ficha = Ficha::model()->findByAttributes(array('cedula' => $cedula));
        $ficha = Ficha::model()->findByAttributes(array('cedula' => $cedula));

        return isset($ficha) ? $ficha->id_carrera : null;
    }

    public function horasCumplidas($area, $ficha) {
        $command = Yii::app()->db->createCommand()
                ->select("sum(t.n_horas) as horas")
                ->from("rep_trabajo_campo t")
                ->join('area ar', 'ar.id = t.id_area')
                ->Where("ar.estado =:estado and t.id_area=:area and t.id_ficha=:ficha", array(':estado' => self::ESTADO_ACTIVO, ':area' => $area, ':ficha' => $ficha));
        $result = $command->queryAll();

        return empty($result ['0']['horas']) ? 0 : $result ['0']['horas'];
    }

}
